<script setup lang="ts">
import { computed } from "vue";

interface Props {
  fill?: string; // 图标的颜色
  width?: string; // 图标的宽度
  height?: string; // 图标的高度
  prefix?: string; // xlink:href属性值的前缀
  svgName: string; // 图标的名字

}

// defineProps接收外部传递过来的prop
const props = withDefaults(defineProps<Props>(), {
   fill: "#000000",
   width: "20px",
   height: "20px",
   prefix: "#icon-",
});


const xlinkHref = computed(() => {
  return props.prefix + props.svgName;
});

</script>

<template>
  <!--svg标签:图标外层容器节点，内部需要与use标签结合使用-->
  <!--use标签:xlink:href属性使用哪一个svg图标属性值务必使用#icon-svg图标名字，style属性svg图标的样式-->
  <svg :style="{width,height}">
    <use :xlink:href="xlinkHref" :fill="fill"></use>
  </svg>
</template>
